package com.lzy.pattern.singleton.demo3;

/**
 * @ClassName: Singleton
 * @Description: 单例设计模式：懒汉式，线程不安全
 * @Author: LiuZy
 * @Date: 2022/4/9 19:29
 * @Version: 1.0
 */
public class Singleton {

    //1.私有化无参构造方法
    private Singleton(){}

    //2.在成员位置使用静态变量来声明该类型
    private static Singleton instance;

    //3.对外提供获取类对象的方法
    //线程不安全
    public static Singleton getInstance(){
//    //线程安全，问题是每次都会抢锁
//    public static synchronized Singleton getInstance(){
        if(instance == null){
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            instance = new Singleton();
        }

        return instance;
    }
}